#include <iostream>

using namespace std;
//类模板：建立一个通用类，类中的成员的数据类型可以不具体制定，用一个虚拟的类型来代表。
//语法：template <typename T> 类
//template--声明创建函数模板
//typename--代表其后面的符号是一种数据类型，可以用class代替
//T--通用的数据类型，名称可以替换，通常为大写字母

template<typename NameType, typename AgeType>
class Person {
public:
    NameType name;
    AgeType age;

    Person(NameType name, AgeType age) {
        this->name = name;
        this->age = age;
    }

    void showPerson() {
        cout << "name:" << this->name << ",age:" << this->age << endl;
    }
};

void test() {
    Person<string, int> person("张三", 18);// 指定NameType 为string类型，AgeType 为 int类型
    person.showPerson();
}

int main() {
    test();
    return 0;
}